<%@ page import="com.gzittc.po.User" %>
<%@ page import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>forEach标签</title>
    <style>
        table {
            width: 800px;
            text-align: center;
            border-collapse: collapse; /* 确保边框合并 */
        }

        td {
            background-color: white; /* 单元格背景色 */
            color: black; /* 文字颜色 */
            padding: 8px; /* 内边距 */
        }

        tr:not(:last-child) td {
            border-bottom: 1px solid #ccc; /* 只在单元格底部添加细线，模拟边框效果 */
        }

    </style>
</head>
<body>
<%--
1. forEach标签格式
  <c:forEach
    items=""
    begin="开始"
    end="结束"
    step="间隔"
    var="限域变量名"
  varStatus="">
  </forEach>
2. forEach标签属性
  用于遍历集合
  items：遍历的集合
  begin：开始位置
  end：结束位置
  step：步长
  var：遍历的元素
  varStatus：遍历的状态
    index：当前元素的索引
    count：当前元素的计数
    first：是否是第一个元素
    last：是否是最后一个元素

3. 循环
<c:forEach items="要循环遍历的数据" var="限域变量名">
</c:forEach>
相当于Java中的forEach
for(String str: list){
}
--%>
<c:forEach var="i" begin="1" end="10" step="2">
    ${i} <br>
</c:forEach>
<%-- 数据 --%>
<%
    List<String> list = new ArrayList<>();
    for (int i = 1; i <= 10; i++) {
        list.add("A:" + i);
    }
    pageContext.setAttribute("list", list);
%>
<c:forEach items="${list}" var="str">
    ${str} *
</c:forEach>
<br>
<hr>
<table>
    <tr>
        <th>名称</th>
        <th>当前成员下标</th>
        <th>当前成员循环数</th>
        <th>是否第一次被循环</th>
        <th>是否第二次被循环</th>
    </tr>
    <c:forEach items="${list}" var="str" varStatus="itemp">
    <tr>
        <td>${str }</td>
        <td>${itemp.index}</td>
        <td>${itemp.count}</td>
        <td>${itemp.first}</td>
        <td>${itemp.last}</td>
        </c:forEach>
</table>
<hr>
<%-- 循环对象集合--%>
<%
    List<User> userList = new ArrayList<>();
    User user = new User(1, "zhangsan", "123");
    User user2 = new User(2, "lisi", "123");
    User user3 = new User(3, "wangwu", "123");
    userList.add(user);
    userList.add(user2);
    userList.add(user3);
    request.setAttribute("userList", userList);
%>
<%--<c:if test="${not empty userList}">--%>
<c:if test="${!empty userList}">
    <table>
        <tr>
            <th>用户编号</th>
            <th>用户名称</th>
            <th>用户密码</th>
            <th>用户操作</th>
        </tr>
        <c:forEach items="${userList}" var="user">
            <tr>
                <td>${user.userId}</td>
                <td>${user.uname}</td>
                <td>${user.upwd}</td>
                <td>
                    <button>修改</button>
                    <button>删除</button>
                </td>
            </tr>
        </c:forEach>
    </table>
</c:if>

<%-- 循环map--%>
<%
Map<String, Object> map = new HashMap<>();
map.put("map1", "aaa");
map.put("map2", "bbb");
map.put("map3", "ccc");
pageContext.setAttribute("map", map);
%>
<c:forEach items="${map}" var="m">
    key:${m.key}&nbsp;&nbsp;value: ${m.value} <br>
</c:forEach>
</body>
</html>
